Today's Question:  What does your personal desk look like?        GIVE A SHOUT

SEARCH KEYWORD -- signed request



  PHP Sucks! But I Like It!

I read a rather interesting post yesterday called PHP: a fractal of bad design. It's been getting a lot of traffic among the PHP community lately because it's rather inflammatory. But to be honest, it does make a lot of really good points. It also makes a lot of mistakes and misses a bigger picture. A Few Mistakes The post makes quite a few mistakes and odd apples to oranges comparisons. Let me point out the major ones that I saw. No Debugger - PHP has xdebug which works quite...

   PHP,Bad design,Like     2012-04-12 06:15:42

  Building a Modern Web Stack for the Real-time Web

The web is evolving. After a few years of iteration the WebSockets spec is finally here (RFC 6455), and as of late 2011 both Chrome and Firefox are SPDY capable. These additions are much more than just "enhancing AJAX", as we now have true real-time communication in the browser: stream multiplexing, flow control, framing, and significant latency and performance improvements. Now, we just need to drag our "back office" - our web frontends, app servers, and everything in between into this cen...

   Web design,Real-time web,web stack     2012-02-15 05:54:41

  Understanding PGO in GoLang 1.20

Background The Go 1.20 version was officially released in February 2023, it introduced the PGO(Profile Guided Optimization) mechanism. The basic principle of PGO can be divided into the following two steps: First, profiling is performed on the program to collect data about the program's runtime and generate a profiling file. When compiling the program, enable the PGO option, and the compiler will optimize the program's performance based on the content in the .pgo file. When compiling a program...

   GO 1.20,PGO,GOLANG     2023-02-28 04:27:46

  Best practices of front end optimization

1. Use DocumentFragment or innerHTML to replace complex elements insertion DOM operation on browser is expensive. Although browser performance is improved much, multiple DOM elements insertion is still expensive and will affect the page load speed. Assume we have an ul element on our page, we now want to retrieve a JSON list using AJAX and then update the ul using JavaScript. Usually we may write it as : var list = document.querySelector('ul'); ajaxResult.items.forEach(function(item) { // ...

   JavaScript,Front end,Optimization,Tips     2013-07-06 11:26:27

  Content based HTTP Cache

Browsers may cache the webpages we visited, when user types a URL on the address bar, the browser may cache the webpage returned from server while displaying it. If there is no update on the webpage, then next time when the browser requests the same page, it will not download the page again, instead it will load the cached page. If the website explicitly specify that the page is updated, then the browser will download the page again from the server. What's HTTP Cache? You may be familiar with th...

   HTTP Cache,Web crawler     2013-05-24 05:12:59

  10 less known but useful PHP functions

PHP has abundant built in functions. As PHP developers, we may have used many of them. But there are still some useful functions we may not be so familiar with. In this post, we will introduce some of them. levenshtein() Have you ever wondered how to check differences between two works? This function just does what you want. It can tell you how much the difference is between two words. <?php $str1 = "carrot"; $str2 = "carrrott"; echo levenshtein($str1, $str2); //Outputs 2 ?> get_defined_va...

   PHP,function     2014-01-20 08:01:31

  New HTTP status code: 451 Unavailable for Legal Reasons

On June 11th,2012, Google proposed a new HTTP status code to indicate webpage contents which are not conform to law. The new HTTP status code is 451 Unavailable for Legal Reasons. Google Android Developer Advocate Tim Bray submitted the draft for the new HTTP status code, it will be used on some webpages which can not be served because of legal reasons. Visitors will know that the page cannot be seen because of the government censorship.According to the draft, responses using this status code sh...

   HTTP status,451,Tim Bray     2012-06-12 09:07:44

  Android socket programming example

Socket is a kind of interface for different sides t communicate, it usually identified by an IP and a port. There are many server side software on a server and they would provide different service. Each server many create some sockets and bind them to some ports so that clients can listen to. Software on the Internet will exchange data though a bidirectional connection established. Each end of the connection has a socket created. In Java, Socket and ServerSocket are in java.net package, ServerSo...

   Android,Socket,Java     2013-05-11 22:17:16

  Alibaba gains spotlight due to female employee alleging sex harassment from supervisor

During the weekend, the Chinese e-commerce giant Alibaba gains spotlight from Chinese general public due to a hot discussion going on on various Chinese social media platforms where a female employee alleges that her supervisor(alias Yi Qu) conducted sex harassment on her during a previous business trip. The case happened a couple of weeks back where the female employee at Alibaba was asked by her direct supervisor to go for a business trip to Shandong province(a northern province in China), sh...

   ALIBABA,SEX HARASSMENT     2021-08-07 22:27:02

  Recursive class initialization in Java

When a Java class is referenced and initialized, it has to go through the loading and linking first. Once the loading and linking complete successfully. The class will be initialized. The static variables and constant variables will be initialized during this process. Once the class is initialized, it is ready for use. If when class A is initialized and it is referencing a class B, the class B will also get initialized. But what will happen if class B is referencing class A as well? This is call...

   Java,JVM,class initialization,static final     2015-04-15 21:04:29